package datos;

import java.io.Serializable;
import java.lang.String;
import java.util.List;

import javax.persistence.*;

/**
 * @version 1.0
 * @author Andres Mejia -Fabio Giraldo
 * 
 * Entity implementation class for Entity: Marca
 * 
 * @param nombre llave primaria de la entidad 
 * @param descripcion muestra las caracteristicas de la marca.
 * @param modelos hace referncia a los diferentes estilos de autos de la marca.
 */
@Entity

public class Marca implements Serializable {

	   
	

	@Id
	private String nombre;
	private String descripcion;
	@OneToMany(mappedBy = "marca")
	List<Modelo>modelos;
	private static final long serialVersionUID = 1L;

	/**
	 * Constructor de la clase 
	 **/  
	public Marca()
	{
		super();
	}   
	
	/**
	 * los metodos set se realizan para cambiar el valor de un atributo.
	 * los metodos get se realizan para retornar el valor de un atributo.
	 */
	public String getNombre() {
		return this.nombre;
	}

	/**
	 * este metodo permite cambiar el valor de nombre.
	 * @param nombre
	 */
	public void setNombre(String nombre) {
		this.nombre = nombre;
	} 
	
	/**
	 * 
	 * @return descripcion devuelve el valor de la descripcion de la Marca. 
	 */
	public String getDescripcion() {
		return this.descripcion;
	}

	/**
	 * este metodo permite modificar la descripcion asignada a una Marca.
	 * @param descripcion
	 */
	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}
	
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((nombre == null) ? 0 : nombre.hashCode());
		return result;
	}
	
	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Marca other = (Marca) obj;
		if (nombre == null) {
			if (other.nombre != null)
				return false;
		} else if (!nombre.equals(other.nombre))
			return false;
		return true;
	}
   
}
